package pe.com.tma.dao.jpa;

import java.sql.Timestamp;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;
import pe.com.tma.dao.OrdenDAO;
import pe.com.tma.model.Orden;
import pe.com.tma.model.Usuario;
import pe.com.tma.util.BusquedaGrl;

public class JPAOrdenDAO extends GenericDAOJpa<Long, Orden> implements OrdenDAO {

	private EntityManager em = getEntityManager();
	
	@Override
	public List<Orden> ObtenerOrdenes(Usuario user) {
		// TODO Auto-generated method stub
		try {
			Query q = em.createQuery("SELECT c FROM Orden c Where c.usuario.idCliente = ?1 ");
			q.setParameter(1, user.getIdCliente());
			//q.setParameter(1, 1);
			return q.getResultList();
			
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	@Override
	public List<Orden> ObtenerOrdenes(Usuario user, BusquedaGrl busc) {
		// TODO Auto-generated method stub
		try {
			Timestamp fecDesde = new Timestamp(busc.getFecDesde().getTime());
			Timestamp fecHasta = new Timestamp(busc.getFecHasta().getTime());
			
			Query q = em.createQuery("SELECT c FROM Orden c Where c.usuario.idCliente = ?1  AND c.fechaOrden BETWEEN ?2 and ?3 ");
			q.setParameter(1, user.getIdCliente());
			q.setParameter(2, fecDesde);
			q.setParameter(3, fecHasta);
			//q.setParameter(1, 1);
			return q.getResultList();
			
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

}
